package com.ourchem.bus.mapper;

import com.ourchem.bus.domain.CountResult;
import com.ourchem.bus.domain.IpView;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * 用户访问量Mapper接口
 *
 * @author ourchem
 * @date 2021-11-02
 */
public interface IpViewMapper
{
    /**
     * 查询用户访问量
     *
     * @param id 用户访问量主键
     * @return 用户访问量
     */
    public IpView selectIpViewById(Integer id);

    /**
     * 查询用户访问量列表
     *
     * @param ipView 用户访问量
     * @return 用户访问量集合
     */
    public List<IpView> selectIpViewList(IpView ipView);

    /**
     * 新增用户访问量
     *
     * @param ipView 用户访问量
     * @return 结果
     */
    public int insertIpView(IpView ipView);

    /**
     * 修改用户访问量
     *
     * @param ipView 用户访问量
     * @return 结果
     */
    public int updateIpView(IpView ipView);

    /**
     * 删除用户访问量
     *
     * @param id 用户访问量主键
     * @return 结果
     */
    public int deleteIpViewById(Integer id);

    /**
     * 批量删除用户访问量
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteIpViewByIds(Integer[] ids);

    /**
     * 查询用户访问总量
     * @return
     */
    CountResult selectIpViewByAllCount(@Param("day1") String day1, @Param("day2") String day2);

    /**
     * 查询最小天数
     */
    String selectIpViewByMinDay();

    /**
     * 查询最大天数
     * @return
     */
    String selectIpViewByMaxDay();

    /**
     * 查询用户访问日量
     * @return
     */
    CountResult selectIpViewByOneDayCount(@Param("day") String day);

    /**
     * 查询用户时间段的日总量
     * @param day1
     * @param countArr
     * @return
     */
    List<Map<String,String>> selectIpViewByAllDaysCount(@Param("day1")String day1, @Param("countArr")String[] countArr);


    /**
     * 查询用户时间段的月总量
     * @param day1
     * @param day2
     * @return
     */
    List<Map<String,String>> selectIpViewByAllMonthsCount(@Param("day1")String day1, @Param("day2")String day2);
}
